package com.vip.fdfs.service;

import com.vip.common.response.Result;
import com.vip.fdfs.dto.AddFileDTO;
import com.vip.fdfs.dto.ImageReturnDTO;
import com.vip.fdfs.entity.SysFastdfsFile;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件数据Service
 *
 * @author wgb
 * @date 2019/12/24 21:21
 */
public interface IFastdfsFileService {
    /**
     * 上传图片数据存储
     *
     * @param dto
     * @return
     */
    Result<String> uploadImageFile(AddFileDTO dto);

    /**
     * 上传文件数据存储
     *
     * @param dto
     * @return
     */
    Result<String> uploadFile(AddFileDTO dto);

    /**
     * 根据文件ID获取文件信息
     *
     * @param fileId
     * @return
     */
    Result<String> getImageThumbPath(String fileId);

    /**
     * 根据文件ID获取文件信息
     *
     * @param fileId
     * @return
     */
    Result<SysFastdfsFile> getFileInfoById(String fileId);

    /**
     * 通过文件ID删除文件
     *
     * @param fileId
     */
    Result<String> deleteFileById(String fileId);

    /**
     * 上传图片
     *
     * @param bindingId
     * @param description
     * @param fileType
     * @param file
     * @return
     */
    Result<ImageReturnDTO> uploadImage(String bindingId, String description, String fileType, MultipartFile file);

    /**
     * 截图上传：先判断是否是视频文件如果是则截图上传
     *
     * @param file
     * @return
     */
    String uploadFetchFrame(MultipartFile file);
}
